﻿using BCCommon.Enums;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace BCDto.UploadHandleComponent
{
    /// <summary>
    /// 上传文件模型
    /// </summary>
    public class UploadFileDto
    {
        /// <summary>
        /// 文件名
        /// </summary>
        public string FileName { get; set; }
        /// <summary>
        /// 文件全名（带扩展名）
        /// </summary>
        public string FullName { get; set; }
        /// <summary>
        /// 文件扩展名
        /// </summary>
        public string FileSuffix { get; set; }
        /// <summary>
        /// 文件类型
        /// </summary>
        public string Type { get; set; }
        /// <summary>
        /// 应用程序根目录
        /// </summary>
        public string ApplicationRootDirectory { get; set; }
        /// <summary>
        /// 网站根目录（磁盘物理地址）
        /// </summary>
        public string WebsiteRootDirectory { get; set; }
        /// <summary>
        /// 网站根目录(域名)
        /// </summary>
        public string WebsiteName { get; set; }
        /// <summary>
        /// 用于存储此类型文件的目录名称
        /// </summary>
        public string FolderName { get; set; }
        /// <summary>
        /// 文件所在目录
        /// </summary>
        public string DirectoryPath { get; set; }
        /// <summary>
        /// 文件完整路径
        /// </summary>
        public string FilePath { get; set; }
        /// <summary>
        /// 文件所在网站Src
        /// </summary>
        public string Src { get; set; }
        /// <summary>
        /// 网站文件目录
        /// </summary>
        public string WebsiteFileDirectory { get; set; }
        /// <summary>
        /// 网站文件全Url
        /// </summary>
        public string WebsiteFullName { get; set; }
        /// <summary>
        /// 文件用途
        /// </summary>
        public UploadUsageType Usage { get; set; }
        /// <summary>
        /// 上传文件备注类型
        /// </summary>
        public UploadFileRemarkType RemarkType { get; set; }
        /// <summary>
        /// 上传文件备注类型存在时，可能需要多个参数才能够完成后续的服务调用
        /// 可以将上传的参数放到Remarks中
        /// </summary>
        public Dictionary<string,object> Remarks { get; set; }  
        /// <summary>
        /// 文件大小
        /// </summary>
        public long ContentLength { get; set; }
        /// <summary>
        /// 文件内容
        /// </summary>
        public byte[] Content { get; set; }
    }
}
